/* Hackathon Imediato — estilo compartilhado das telas (ideias, grupos, admin).
   Identidade Imediato Nexway: azul #001F40 base, verde #00AA80 só como acento,
   fonte única Prompt, motivo gráfico = órbitas cruzadas (nunca cunhas angulares).
   O canvas (canvas.html) tem estilo próprio de palco 16:9 e não usa este arquivo. */
@import url('https://fonts.googleapis.com/css2?family=Prompt:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --azul: #001F40;
  --azul-2: #0A2E57;
  --verde: #00AA80;
  --verde-escuro: #008866;   /* verde para texto sobre branco quando precisar (≥ 4.5:1 só em ≥14px bold) */
  --verde-claro: #E8F7F3;
  --cinza: #DADADA;
  --linha: #D7DCE2;
  --ct: #4A5561;
  --hint: #8A939D;
  --fundo: #F4F6F8;
  --branco: #FFFFFF;
  --erro: #B42318;
  --erro-claro: #FDECEA;
  --aviso: #8A5A00;
  --aviso-claro: #FFF6E0;
  --raio: 6px;
}
html { -webkit-text-size-adjust: 100%; }
body { font-family: 'Prompt', system-ui, sans-serif; background: var(--fundo); color: var(--azul); min-height: 100vh; display: flex; flex-direction: column; font-size: 15px; line-height: 1.5; }
a { color: var(--azul); }
button, input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }

/* ---------- Topo com abas ---------- */
.topo { background: var(--azul); color: var(--branco); position: relative; overflow: hidden; }
.topo__orbita { position: absolute; right: -90px; top: -70px; width: 240px; height: 240px; opacity: .8; pointer-events: none; }
.topo__barra { max-width: 1120px; margin: 0 auto; padding: 16px 20px 0; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; position: relative; z-index: 1; }
.topo__logo img { height: 30px; width: auto; display: block; }
.topo__titulo { border-left: 1px solid rgba(255,255,255,.18); padding-left: 18px; }
.topo__kicker { display: block; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--verde); }
.topo__nome { font-size: 18px; font-weight: 700; line-height: 1.2; }
.abas { max-width: 1120px; margin: 0 auto; padding: 14px 20px 0; display: flex; gap: 4px; position: relative; z-index: 1; overflow-x: auto; }
.aba { color: rgba(255,255,255,.65); text-decoration: none; font-size: 14px; font-weight: 600; padding: 10px 16px 12px; border-radius: var(--raio) var(--raio) 0 0; white-space: nowrap; display: flex; align-items: center; gap: 8px; }
.aba__num { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.35); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }
.aba__relogio { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; }
.aba:hover { color: var(--branco); }
.aba.ativa { background: var(--fundo); color: var(--azul); }
.aba.ativa .aba__num { border-color: var(--verde); color: var(--azul); }
.aba.desativada { opacity: .45; pointer-events: none; }
.regua { display: flex; height: 3px; }
.regua__verde { width: 84px; background: var(--verde); }
.regua__cinza { flex: 1; background: var(--cinza); }

/* ---------- Conteúdo ---------- */
main.conteudo { flex: 1; width: 100%; max-width: 1120px; margin: 0 auto; padding: 28px 20px 48px; }
.estreito { max-width: 680px; }
h1 { font-size: 26px; font-weight: 700; line-height: 1.2; margin-bottom: 6px; }
h2 { font-size: 19px; font-weight: 700; margin-bottom: 10px; }
h3 { font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.sub { color: var(--ct); margin-bottom: 20px; }
.hint { color: var(--hint); font-size: 13px; font-style: italic; }
.muted { color: var(--ct); }

.cartao { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 22px; }
.cartao + .cartao { margin-top: 16px; }
.cartao--destaque { border-top: 3px solid var(--verde); }

/* ---------- Formulário ---------- */
.campo { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.campo label, .rotulo { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--azul); }
.campo input[type=text], .campo input[type=email], .campo input[type=password], .campo input[type=number], .campo textarea, .campo select, .entrada {
  width: 100%; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--branco);
  padding: 11px 13px; font-size: 16px; color: var(--azul); outline: none; transition: border-color .15s, box-shadow .15s;
}
.campo textarea { min-height: 120px; resize: vertical; line-height: 1.5; }
.campo input:focus, .campo textarea:focus, .campo select:focus, .entrada:focus { border-color: var(--verde); box-shadow: 0 0 0 3px rgba(0,170,128,.15); }
.campo .ajuda { font-size: 13px; color: var(--hint); }
.campo .contador { font-size: 12px; color: var(--hint); text-align: right; }
.campo.invalido input, .campo.invalido textarea { border-color: var(--erro); }
.campo .erro-campo { font-size: 13px; color: var(--erro); }

/* Escolha em pílulas (presencial / remoto) — dot, nunca caixa pesada */
.opcoes { display: flex; gap: 10px; flex-wrap: wrap; }
.opcao { position: relative; }
.opcao input { position: absolute; opacity: 0; pointer-events: none; }
.opcao span { display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; border: 1px solid var(--linha); border-radius: 999px; background: var(--branco); cursor: pointer; font-weight: 500; }
.opcao span::before { content: ''; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--cinza); background: #fff; }
.opcao input:checked + span { border-color: var(--verde); color: var(--azul); font-weight: 700; }
.opcao input:checked + span::before { background: var(--verde); border-color: var(--verde); box-shadow: 0 0 0 3px rgba(0,170,128,.18); }
.opcao input:focus-visible + span { box-shadow: 0 0 0 3px rgba(0,170,128,.25); }

/* ---------- Botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: var(--raio); padding: 11px 18px; font-weight: 600; font-size: 15px; cursor: pointer; text-decoration: none; transition: filter .15s, background .15s; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-primario { background: var(--azul); color: var(--branco); }
.btn-primario:hover:not(:disabled) { filter: brightness(1.25); }
.btn-verde { background: var(--verde); color: var(--branco); }
.btn-verde:hover:not(:disabled) { filter: brightness(1.08); }
.btn-secundario { background: var(--branco); color: var(--azul); border-color: var(--linha); }
.btn-secundario:hover:not(:disabled) { border-color: var(--azul); }
.btn-perigo { background: var(--branco); color: var(--erro); border-color: #F1C4BF; }
.btn-perigo:hover:not(:disabled) { background: var(--erro-claro); }
.btn-pequeno { padding: 6px 11px; font-size: 13px; }
.acoes { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

/* ---------- Avisos ---------- */
.aviso { border-left: 3px solid var(--verde); background: var(--verde-claro); padding: 12px 16px; border-radius: 0 var(--raio) var(--raio) 0; color: var(--azul); font-size: 14px; }
.aviso--erro { border-left-color: var(--erro); background: var(--erro-claro); color: var(--erro); }
.aviso--atencao { border-left-color: #E0A800; background: var(--aviso-claro); color: var(--aviso); }

/* ---------- Tabelas ---------- */
.tabela-wrap { overflow-x: auto; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--branco); }
table.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th { text-align: left; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--hint); padding: 10px 12px; border-bottom: 1px solid var(--linha); background: #FAFBFC; white-space: nowrap; }
.tabela td { padding: 10px 12px; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tabela tr:last-child td { border-bottom: none; }

/* ---------- Etiquetas ---------- */
.tag { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: #EEF1F4; color: var(--azul); white-space: nowrap; }
.tag--verde { background: var(--verde-claro); color: #006B50; }
.tag--atencao { background: var(--aviso-claro); color: var(--aviso); }

/* ---------- Números grandes ---------- */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.kpi { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px 16px; }
.kpi__rotulo { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--hint); }
.kpi__valor { font-size: 28px; font-weight: 700; line-height: 1.2; }

/* ---------- Rodapé ---------- */
.rodape { background: var(--azul); height: 44px; position: relative; display: flex; align-items: center; padding: 0 20px 0 130px; margin-top: auto; }
.rodape__canto { position: absolute; left: 0; bottom: 0; width: 110px; height: 44px; background: var(--verde); border-radius: 0 24px 0 0; }
.rodape__texto { font-size: 13px; font-style: italic; color: rgba(255,255,255,.5); display: flex; align-items: center; gap: 8px; }
.rodape__texto svg { width: 16px; height: 16px; }

.oculto { display: none !important; }

@media (max-width: 640px) {
  .topo__titulo { border-left: none; padding-left: 0; width: 100%; }
  h1 { font-size: 22px; }
  .cartao { padding: 16px; }
  .rodape { padding-left: 100px; }
  .rodape__canto { width: 84px; }
}

/* ========== Telas públicas: ideias.html e grupos.html ========== */
/* Celular: as três abas cabem sem rolar de lado e o slogan do rodapé fica em 1 linha */
@media (max-width: 420px) {
  .abas { padding-left: 12px; padding-right: 12px; gap: 2px; }
  .aba { padding: 10px 10px 12px; font-size: 13px; gap: 6px; }
  .rodape { padding-left: 96px; padding-right: 12px; }
  .rodape__texto { font-size: 12px; }
}
/* Pílulas dentro de .campo não herdam o estilo de rótulo de ".campo label" */
.campo .opcao { font-size: 15px; font-weight: 500; letter-spacing: normal; text-transform: none; }

.tela-ideias .ponto-vivo, .tela-grupos .ponto-vivo { display: inline-block; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--verde); animation: pulso-vivo 2.2s ease-out infinite; }
@keyframes pulso-vivo { 0% { box-shadow: 0 0 0 0 rgba(0,170,128,.45); } 70%, 100% { box-shadow: 0 0 0 8px rgba(0,170,128,0); } }
@media (max-width: 640px) {
  .tela-ideias main.conteudo, .tela-grupos main.conteudo { padding: 22px 16px 40px; }
}

/* ideias.html */
.tela-ideias main.conteudo { max-width: 680px; }
.tela-ideias .contagem { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: #006B50; background: var(--verde-claro); border-radius: 999px; padding: 5px 12px; margin-bottom: 14px; }
.tela-ideias .passos { list-style: none; display: grid; gap: 10px; margin: -4px 0 22px; counter-reset: passo; }
.tela-ideias .passos li { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; line-height: 1.45; color: var(--ct); }
.tela-ideias .passos li::before { counter-increment: passo; content: counter(passo); flex: none; width: 24px; height: 24px; margin-top: -1px; border-radius: 50%; border: 1.5px solid var(--verde); background: var(--branco); color: var(--azul); font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.tela-ideias .passos strong { color: var(--azul); white-space: nowrap; }
.tela-ideias .aviso-fechado { margin-bottom: 16px; }
.tela-ideias .aviso-fechado a { color: inherit; font-weight: 700; }
.tela-ideias .campos { border: 0; min-width: 0; }
.tela-ideias .campos:disabled .campo, .tela-ideias .campos:disabled .envio { opacity: .55; }
.tela-ideias .campo__pe { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.tela-ideias .campo__pe .contador { margin-left: auto; white-space: nowrap; }
.tela-ideias .contador--alerta { color: var(--erro); font-weight: 600; }
.tela-ideias .opcoes--largas .opcao { flex: 1 1 130px; }
.tela-ideias .opcoes--largas .opcao span { width: 100%; justify-content: center; padding: 12px 16px; }
.tela-ideias .campo.invalido .opcao span { border-color: var(--erro); }
.tela-ideias .armadilha { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.tela-ideias #erro-geral { margin-bottom: 16px; }
.tela-ideias .envio { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.tela-ideias .btn-enviar { width: 100%; padding: 14px 18px; font-size: 16px; }
.tela-ideias .envio .hint { text-align: center; }
@media (min-width: 641px) {
  .tela-ideias .passos { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .tela-ideias .envio { flex-direction: row; align-items: center; gap: 16px; }
  .tela-ideias .btn-enviar { width: auto; min-width: 220px; }
  .tela-ideias .envio .hint { text-align: left; }
}
.tela-ideias .enviada { position: relative; overflow: hidden; }
.tela-ideias .enviada__orbita { position: absolute; right: -36px; top: -36px; width: 150px; height: 150px; opacity: .14; pointer-events: none; }
.tela-ideias .enviada__kicker { display: block; margin-bottom: 4px; color: var(--verde-escuro); }
.tela-ideias .enviada h2 { font-size: 22px; outline: none; }
.tela-ideias .enviada__ok { color: var(--verde); }
.tela-ideias .citacao { margin: 12px 0 8px; padding: 12px 16px; border-left: 3px solid var(--verde); background: var(--fundo); border-radius: 0 var(--raio) var(--raio) 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 15px; }
.tela-ideias .enviada__proximo { margin: 14px 0 16px; color: var(--ct); }
.tela-ideias .enviada__rodape { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--linha); font-size: 13px; color: var(--ct); }
.tela-ideias .link-botao { background: none; border: 0; padding: 0; margin-top: 4px; color: var(--azul); font-size: 13px; text-decoration: underline; text-align: left; cursor: pointer; }

/* grupos.html */
.tela-grupos .carregando { padding: 40px 0; text-align: center; }
.tela-grupos .aviso-conexao { margin-bottom: 16px; }
.tela-grupos .espera { position: relative; overflow: hidden; text-align: center; max-width: 640px; margin: 8px auto 0; padding: 34px 22px 26px; }
.tela-grupos .espera__orbita { display: block; width: 88px; height: 88px; margin: 0 auto 16px; animation: girar-orbita 28s linear infinite; }
@keyframes girar-orbita { to { transform: rotate(360deg); } }
.tela-grupos .espera h1 { font-size: 22px; margin-bottom: 10px; }
.tela-grupos .espera__numero { display: inline-flex; flex-direction: column; align-items: center; margin: 22px 0 6px; padding: 14px 28px; background: var(--fundo); border-radius: var(--raio); }
.tela-grupos .espera__numero .kpi__valor { font-size: 40px; }
.tela-grupos .espera__cta { margin-top: 12px; }
.tela-grupos .espera__cta a { font-weight: 700; }
.tela-grupos .espera__vivo { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; }
.tela-grupos label.rotulo { display: block; }
.tela-grupos .busca { position: sticky; top: 0; z-index: 5; background: var(--fundo); padding: 6px 0 10px; }
.tela-grupos .busca::after { content: ''; position: absolute; left: 0; right: 0; bottom: -12px; height: 12px; background: linear-gradient(var(--fundo), rgba(244,246,248,0)); pointer-events: none; }
.tela-grupos .busca__caixa { position: relative; }
.tela-grupos .busca__icone { position: absolute; left: 13px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--hint); pointer-events: none; }
.tela-grupos .busca .entrada { padding-left: 40px; padding-right: 46px; }
.tela-grupos .busca .entrada::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.tela-grupos .busca__limpar { position: absolute; right: 5px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; border-radius: 50%; background: none; color: var(--ct); font-size: 22px; line-height: 1; cursor: pointer; }
.tela-grupos .busca__limpar:hover { background: #EEF1F4; }
.tela-grupos .busca__msg { margin-top: 8px; font-size: 13px; color: var(--ct); }
.tela-grupos .busca__msg--nada { color: var(--aviso); font-weight: 600; }
.tela-grupos .resumo { font-size: 13px; color: var(--hint); margin: 10px 0 18px; }
.tela-grupos .secao + .secao { margin-top: 30px; }
.tela-grupos .secao__topo { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.tela-grupos .secao__topo h2 { margin: 0; }
.tela-grupos .grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.tela-grupos .grupo { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px; display: flex; flex-direction: column; gap: 12px; transition: opacity .2s, border-color .2s, box-shadow .2s; }
.tela-grupos .grupo__topo { display: flex; align-items: center; gap: 12px; }
.tela-grupos .grupo__num { flex: none; width: 38px; height: 38px; border-radius: 50%; border: 2px solid var(--verde); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; }
.tela-grupos .grupo__titulo { flex: 1; min-width: 0; }
.tela-grupos .grupo__nome { font-size: 17px; line-height: 1.25; margin: 0; }
.tela-grupos .grupo__qtd { font-size: 12px; color: var(--hint); }
.tela-grupos .grupo__membros { list-style: none; flex: 1; display: flex; flex-direction: column; gap: 2px; border-top: 1px solid var(--linha); padding-top: 10px; }
.tela-grupos .grupo__membros li { position: relative; padding: 5px 8px 5px 20px; border-radius: 4px; font-size: 14.5px; line-height: 1.35; }
.tela-grupos .grupo__membros li::before { content: ''; position: absolute; left: 8px; top: 50%; width: 5px; height: 5px; margin-top: -2.5px; border-radius: 50%; background: var(--cinza); }
.tela-grupos .grupo__membros li.achado { background: var(--verde-claro); font-weight: 700; }
.tela-grupos .grupo__membros li.achado::before { background: var(--verde); }
.tela-grupos .grupo__vazio { flex: 1; }
.tela-grupos .grupo__abrir { width: 100%; }
.tela-grupos .grupo.achado { border-color: var(--verde); box-shadow: 0 0 0 3px rgba(0,170,128,.18); }
.tela-grupos.com-achado .grupo:not(.achado) { opacity: .45; }
@media (prefers-reduced-motion: reduce) {
  .tela-ideias .ponto-vivo, .tela-grupos .ponto-vivo, .tela-grupos .espera__orbita { animation: none; }
}

/* ======================================================================
   Tela /admin (admin.html) — painel do organizador, desktop.
   Tudo com prefixo adm- para não esbarrar nas outras telas.
   ====================================================================== */
.adm-sair { margin-left: auto; color: rgba(255,255,255,.75); font-size: 13px; font-weight: 500; text-decoration: none; padding: 5px 12px; border: 1px solid rgba(255,255,255,.22); border-radius: var(--raio); }
.adm-sair:hover { color: var(--branco); border-color: rgba(255,255,255,.55); }
.adm-login { max-width: 440px; margin: 16px auto 0; }
.adm-mt { margin-top: 14px; }
.adm-mt-p { margin-top: 8px; }
.adm-mt-g { margin-top: 24px; }
.adm-mb { margin-bottom: 14px; }

/* Abas internas + linha de status */
.adm-abas { display: flex; gap: 2px; border-bottom: 1px solid var(--linha); overflow-x: auto; }
.adm-aba { background: none; border: none; border-bottom: 3px solid transparent; margin-bottom: -1px; padding: 10px 16px 11px; font-weight: 600; font-size: 14px; color: var(--ct); cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; }
.adm-aba:hover { color: var(--azul); }
.adm-aba.ativa { color: var(--azul); border-bottom-color: var(--verde); }
.adm-aba:focus-visible { outline: 2px solid var(--verde); outline-offset: -2px; }
.adm-aba__conta { font-size: 11px; font-weight: 700; min-width: 20px; height: 20px; padding: 0 7px; border-radius: 999px; background: #EEF1F4; color: var(--azul); display: inline-flex; align-items: center; justify-content: center; }
.adm-aba__conta--atencao { background: var(--aviso-claro); color: var(--aviso); }
.adm-status { font-size: 12px; color: var(--hint); text-align: right; margin: 8px 0 18px; min-height: 18px; }
.adm-status--erro { color: var(--erro); }
.adm-linkbtn { background: none; border: none; padding: 0; color: var(--azul); font-size: 12px; font-weight: 600; text-decoration: underline; cursor: pointer; }

/* Estrutura das seções */
.adm-painel > * + * { margin-top: 16px; }
.adm-cabeca { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px 20px; flex-wrap: wrap; margin-bottom: 14px; }
.adm-cabeca h1, .adm-cabeca h2 { margin-bottom: 4px; }
.adm-cabeca .sub { margin-bottom: 0; }
.adm-grade-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 16px; }
.adm-grade-2 .cartao + .cartao { margin-top: 0; }
.adm-barra { display: flex; gap: 12px 16px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.adm-busca { max-width: 380px; font-size: 14px !important; padding: 9px 12px !important; }
.adm-filtros { gap: 6px; }
.adm-filtros .opcao span { padding: 6px 12px; font-size: 13px; gap: 8px; }
.adm-filtros .opcao span::before { width: 11px; height: 11px; }
.adm-n { font-style: normal; font-weight: 600; color: var(--hint); }
.adm-sep { border-top: 1px solid var(--linha); margin: 22px 0 16px; }
.adm-info { font-size: 13px; color: var(--ct); }
.adm-info--erro { color: var(--erro); }
.adm-txt-atencao { color: var(--aviso); font-size: 13px; font-weight: 600; }

/* KPIs e inscrições */
.adm-kpi--atencao { border-color: #F0D48A; background: var(--aviso-claro); }
.adm-kpi--atencao .kpi__valor { color: var(--aviso); }
.adm-kpi__nota { font-size: 12px; color: var(--aviso); }
.adm-estado { font-size: 22px; font-weight: 700; display: flex; align-items: center; gap: 10px; margin: 4px 0 4px; }
.adm-estado::before { content: ''; width: 12px; height: 12px; border-radius: 50%; background: var(--cinza); }
.adm-estado--aberto::before { background: var(--verde); box-shadow: 0 0 0 4px rgba(0,170,128,.18); }
.adm-estado--fechado::before { background: var(--erro); box-shadow: 0 0 0 4px rgba(180,35,24,.14); }
.adm-link { display: flex; gap: 8px; align-items: center; margin-top: 8px; }
.adm-link .entrada { font-size: 14px; padding: 7px 11px; min-width: 0; flex: 1; background: var(--fundo); }
.adm-pendencias { list-style: none; }
.adm-pendencias li { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--linha); }
.adm-pendencias li:last-child { border-bottom: none; }
.adm-pendencias li::before { content: ''; flex: none; width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--cinza); background: var(--branco); }
.adm-pendencias li.feito::before { background: var(--verde); border-color: var(--verde); box-shadow: inset 0 0 0 3px var(--branco); }
.adm-pendencias li.feito > span { color: var(--ct); }
.adm-pendencias li.atencao::before { border-color: #E0A800; background: var(--aviso-claro); }
.adm-pendencias li.atencao > span { color: var(--aviso); font-weight: 600; }
.adm-pendencias li .btn { margin-left: auto; }

/* Tabelas do painel */
.adm-sel { border: 1px solid var(--linha); border-radius: var(--raio); background: var(--branco); padding: 5px 8px; font-size: 13px; color: var(--azul); max-width: 150px; cursor: pointer; }
.adm-sel:focus { outline: none; border-color: var(--verde); box-shadow: 0 0 0 3px rgba(0,170,128,.15); }
.adm-sel--curto { width: 72px; }
.adm-sel--largo { max-width: none; min-width: 220px; }
.adm-sel--vazio { border-color: #E0A800; background: var(--aviso-claro); }
.adm-sel--salvando { opacity: .55; }
.tabela tr.adm-linha-atencao td { background: #FFFBF0; }
.tabela tr.adm-linha-erro td { background: #FEF6F5; }
.tabela td.adm-vazio { text-align: center; color: var(--hint); font-style: italic; padding: 22px 12px; }
.adm-ideia-texto { white-space: pre-wrap; word-break: break-word; min-width: 280px; max-width: 460px; }
.adm-email { color: var(--ct); font-size: 13px; word-break: break-all; }
.adm-quando { white-space: nowrap; color: var(--ct); font-size: 13px; }
.adm-acoes-linha { display: flex; gap: 6px; justify-content: flex-end; white-space: nowrap; }
.adm-tag--erro { background: var(--erro-claro); color: var(--erro); }
.adm-erro-linha { font-size: 12px; color: var(--erro); margin-top: 4px; }

/* Importar lista */
.campo textarea.adm-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; min-height: 170px; tab-size: 18; }
.adm-resumo { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 6px; }
.adm-rolagem { max-height: 440px; overflow: auto; }
.adm-rolagem .tabela th { position: sticky; top: 0; z-index: 1; }
.adm-mapa { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 8px 14px; margin-top: 10px; }
.adm-mapa label { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 6px 6px 6px 12px; color: var(--azul); font-weight: 600; font-size: 14px; }
.adm-mapa .adm-sel--largo { min-width: 150px; }

/* Sorteio */
.adm-sorteio-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 0 20px; }
.adm-equilibrio { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin: 4px 0 12px; }
.adm-equilibrio > div { background: var(--fundo); border-radius: var(--raio); padding: 10px 14px; font-size: 14px; color: var(--ct); }
.adm-equilibrio strong { color: var(--azul); display: block; margin-bottom: 2px; }
.adm-grupos { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; margin-top: 16px; }
.adm-grupo { background: var(--branco); border: 1px solid var(--linha); border-top: 3px solid var(--azul); border-radius: var(--raio); padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.adm-grupo--remoto { border-top-color: var(--verde); }
.adm-grupo__topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.adm-grupo__nome { font-weight: 700; font-size: 16px; }
.adm-grupo__meta { font-size: 13px; color: var(--ct); }
.adm-membros { list-style: none; font-size: 14px; }
.adm-membros li { display: flex; align-items: center; gap: 6px; padding: 4px 0; border-bottom: 1px dashed #E6EAEE; }
.adm-membros li:last-child { border-bottom: none; }
.adm-membros__nome { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-membros .tag { font-size: 11px; padding: 1px 8px; }
.adm-grupo__canvas { border-top: 1px solid var(--linha); padding-top: 10px; margin-top: auto; display: flex; flex-direction: column; gap: 6px; }
.adm-grupo__linha { display: flex; justify-content: space-between; align-items: baseline; }
.adm-grupo__caminho { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; color: var(--hint); word-break: break-all; }
.adm-progresso { height: 6px; background: #EEF1F4; border-radius: 999px; overflow: hidden; }
.adm-progresso > div { height: 100%; background: var(--verde); border-radius: 999px; }
.adm-mover { display: flex; gap: 12px 16px; align-items: flex-end; flex-wrap: wrap; }
.adm-mover .campo { margin-bottom: 0; min-width: 280px; }
.adm-atencao { border-color: #F0D48A; background: #FFFBF0; }
.adm-sem-grupo { display: flex; align-items: center; gap: 8px 10px; padding: 9px 0; border-bottom: 1px solid #F3E2B0; flex-wrap: wrap; }
.adm-sem-grupo:last-child { border-bottom: none; }
.adm-empurra { flex: 1; }
.adm-perigo { border-color: #F1C4BF; }
.adm-perigo h2 { color: var(--erro); }
.adm-perigo .campo { max-width: 320px; }
.adm-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; margin-bottom: 16px; cursor: pointer; max-width: 640px; }
.adm-check input { margin-top: 4px; accent-color: var(--erro); }
.adm-btn-perigo { background: var(--erro); color: var(--branco); }
.adm-btn-perigo:hover:not(:disabled) { filter: brightness(1.1); }

/* Backup e configurações */
.adm-downloads { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; margin-top: 14px; }
.adm-form-pin { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 16px; max-width: 820px; }
.adm-form-pin__pe { grid-column: 1 / -1; }

/* Diálogo de confirmação e formulários */
.adm-dialogo { border: none; border-radius: 10px; padding: 0; margin: auto; width: min(540px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; color: var(--azul); background: var(--branco); box-shadow: 0 24px 60px rgba(0,31,64,.3); border-top: 4px solid var(--verde); }
.adm-dialogo::backdrop { background: rgba(0,31,64,.5); }
.adm-dialogo--perigo { border-top-color: var(--erro); }
.adm-dialogo__corpo { padding: 22px 24px 6px; }
.adm-dialogo__corpo h2 { margin-bottom: 12px; }
.adm-dialogo__corpo > p { margin-bottom: 10px; color: var(--ct); white-space: pre-wrap; word-break: break-word; }
.adm-dialogo__pe { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 24px 20px; }

/* Aviso flutuante */
.adm-toast { position: fixed; right: 20px; bottom: 60px; max-width: 440px; background: var(--azul); color: var(--branco); padding: 12px 16px; border-radius: var(--raio); box-shadow: 0 10px 30px rgba(0,31,64,.25); font-size: 14px; z-index: 50; opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s; pointer-events: none; }
.adm-toast.visivel { opacity: 1; transform: none; }
.adm-toast--erro { background: var(--erro); }

@media (max-width: 760px) {
  .adm-form-pin, .adm-sorteio-campos { grid-template-columns: 1fr; }
  .adm-mover .campo { min-width: 0; width: 100%; }
}

/* Painel do organizador (admin.html): etiquetas de atenção abaixo do nome (duplicado, a conferir, fora da lista) */
.adm-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.adm-tags:empty { display: none; }
.adm-tags .tag { font-size: 11px; padding: 1px 8px; }

/* Aba Grupos (grupos.html): código do evento para liberar o link do canvas */
.codigo-evento { margin: 0 0 20px; }
.codigo-evento__linha { display: flex; gap: 8px; flex-wrap: wrap; align-items: stretch; }
.codigo-evento__linha .entrada { flex: 1; min-width: 180px; max-width: 320px; }
.codigo-evento .aviso { margin-top: 10px; }
.grupo__trava { font-size: 13px; color: var(--ct); margin-top: auto; padding-top: 8px; }

/* ======================================================================
   Painel do organizador (admin.html): seção Avaliação da banca (etapa 3)
   ====================================================================== */
.adm-aval > * + * { margin-top: 16px; }
.adm-estado--encerrado::before { background: var(--azul); box-shadow: 0 0 0 4px rgba(0,31,64,.14); }
.tabela tr.adm-linha-inativa td { background: #FAFBFC; color: var(--hint); }
.tabela tr.adm-linha-inativa strong { color: var(--ct); }
.adm-av-link { display: flex; gap: 6px; align-items: center; min-width: 280px; }
.adm-av-link .entrada { flex: 1; min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; padding: 6px 9px; background: var(--fundo); }
.adm-av-prog { min-width: 160px; }
.adm-av-prog .adm-progresso { margin-top: 5px; }
.adm-av-coment { white-space: pre-wrap; word-break: break-word; min-width: 200px; max-width: 340px; font-size: 13px; color: var(--ct); }

/* Critérios: tabela editável e soma dos pesos ao vivo */
.adm-crit td { vertical-align: middle; }
.adm-crit .entrada { font-size: 14px; padding: 7px 10px; }
.adm-crit__nome { min-width: 200px; }
.adm-crit__nome .hint { margin-top: 3px; font-size: 12px; }
.adm-crit__pergunta { width: 55%; min-width: 240px; }
.adm-crit .adm-crit__peso { width: 84px; }
.adm-crit-pe { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; margin-top: 14px; }
.adm-crit-soma { font-size: 14px; font-weight: 700; padding: 5px 12px; border-radius: 999px; background: #EEF1F4; }
.adm-crit-soma--ok { background: var(--verde-claro); color: #006B50; }
.adm-crit-soma--erro { background: var(--erro-claro); color: var(--erro); }

/* Matriz avaliadores × equipes */
.adm-legenda { display: flex; gap: 6px 16px; flex-wrap: wrap; align-items: center; font-size: 13px; color: var(--ct); }
.adm-legenda > span { display: inline-flex; align-items: center; gap: 6px; }
.adm-matriz th, .adm-matriz td { text-align: center; vertical-align: middle; padding: 8px 6px; }
.adm-matriz th:first-child, .adm-matriz td:first-child { text-align: left; padding-left: 12px; position: sticky; left: 0; z-index: 1; background: var(--branco); white-space: nowrap; }
.adm-matriz thead th:first-child { background: #FAFBFC; }
.adm-matriz tfoot td { border-top: 1px solid var(--linha); border-bottom: none; font-size: 12px; font-weight: 600; color: var(--ct); background: #FAFBFC; }
.adm-matriz tfoot td:first-child { background: #FAFBFC; }
.adm-matriz tfoot td.adm-mz-falta { color: var(--aviso); }
.adm-mz { display: inline-flex; width: 26px; height: 26px; border-radius: 50%; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; line-height: 1; }
.adm-mz--completa { background: var(--verde-claro); color: #006B50; }
.adm-mz--parcial { background: var(--aviso-claro); color: var(--aviso); }
.adm-mz--pendente { color: var(--hint); }
.adm-mz__nome { font-weight: 600; }

/* Classificação ao vivo */
.adm-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela th.adm-num, .tabela td.adm-num { text-align: right; }
.tabela th.adm-th-quebra { white-space: normal; min-width: 96px; max-width: 170px; line-height: 1.3; }
.adm-classif td { vertical-align: middle; }
.adm-classif__equipe { min-width: 190px; }
.adm-classif .btn { white-space: nowrap; }
.adm-pos { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 6px; border-radius: 999px; border: 1.5px solid var(--linha); font-weight: 700; }
.adm-pos--podio { border: 2px solid var(--verde); }
.tabela tr.adm-podio td { background: #F6FBF9; }
.adm-nota { font-size: 16px; font-weight: 700; }
.adm-eq-grupo { font-size: 12px; color: var(--ct); }
.adm-dialogo--largo { width: min(960px, calc(100vw - 32px)); }

/* ======================================================================
   Aba 3 — Avaliação: avaliacao.html (pública) e avaliar.html (banca, celular/tablet primeiro).
   Classes com prefixo av- dentro de .tela-avaliacao / .tela-avaliar.
   ====================================================================== */
.tela-avaliacao .ponto-vivo, .tela-avaliar .ponto-vivo { display: inline-block; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--verde); animation: pulso-vivo 2.2s ease-out infinite; }
.tela-avaliacao .av-kicker, .tela-avaliar .av-kicker { display: block; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--verde-escuro); margin-bottom: 4px; }
.tela-avaliacao .av-num, .tela-avaliar .av-num { flex: none; width: 38px; height: 38px; border-radius: 50%; border: 2px solid var(--verde); background: var(--branco); color: var(--azul); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; }
.tela-avaliacao .av-carregando, .tela-avaliar .av-carregando { padding: 40px 0; text-align: center; }
@media (max-width: 640px) {
  .tela-avaliacao main.conteudo, .tela-avaliar main.conteudo { padding: 22px 16px 40px; }
}

/* avaliacao.html (aba 3 pública) */
.tela-avaliacao .aviso-conexao { margin-bottom: 16px; }
.tela-avaliacao .av-espera { position: relative; overflow: hidden; text-align: center; max-width: 640px; margin: 8px auto 0; padding: 34px 22px 26px; }
.tela-avaliacao .av-espera__orbita { display: block; width: 88px; height: 88px; margin: 0 auto 16px; animation: girar-orbita 28s linear infinite; }
.tela-avaliacao .av-espera h1 { font-size: 22px; margin-bottom: 10px; }
.tela-avaliacao .av-vivo { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; }
.tela-avaliacao .av-secao-topo { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.tela-avaliacao .av-secao-topo h2 { margin: 0; }
.tela-avaliacao .av-ordem-bloco { max-width: 640px; margin: 30px auto 0; }
.tela-avaliacao .av-ordem { list-style: none; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); }
.tela-avaliacao .av-ordem li { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--linha); }
.tela-avaliacao .av-ordem li:last-child { border-bottom: none; }
.tela-avaliacao .av-ordem__nome { flex: 1; min-width: 0; font-weight: 600; font-size: 15.5px; line-height: 1.3; overflow-wrap: anywhere; }
.tela-avaliacao .av-ordem__sub { display: block; font-size: 12px; font-weight: 400; color: var(--hint); }

.tela-avaliacao .av-podio { --colunas: 3; display: grid; grid-template-columns: repeat(var(--colunas), minmax(0, 1fr)); align-items: end; gap: 14px; margin: 24px 0 36px; }
.tela-avaliacao .av-podio__item { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; background: var(--branco); border: 1px solid var(--linha); border-top: 3px solid var(--verde); border-radius: var(--raio); padding: 22px 18px 20px; }
.tela-avaliacao .av-podio__item--1 { background: var(--azul); border-color: var(--azul); color: var(--branco); padding: 34px 18px 28px; }
.tela-avaliacao .av-podio--classico .av-podio__item--1 { order: 2; }
.tela-avaliacao .av-podio--classico .av-podio__item--2 { order: 1; }
.tela-avaliacao .av-podio--classico .av-podio__item--3 { order: 3; }
.tela-avaliacao .av-podio__orbita { position: absolute; right: -46px; top: -46px; width: 170px; height: 170px; pointer-events: none; }
.tela-avaliacao .av-medalha { position: relative; flex: none; width: 50px; height: 50px; border-radius: 50%; border: 2px solid var(--verde); background: var(--branco); color: var(--azul); display: inline-flex; align-items: center; justify-content: center; font-size: 17px; font-weight: 700; }
.tela-avaliacao .av-podio__item--1 .av-medalha { width: 62px; height: 62px; background: var(--verde); border-color: var(--verde); color: var(--branco); font-size: 21px; box-shadow: 0 0 0 5px rgba(0,170,128,.22); }
.tela-avaliacao .av-podio__texto { position: relative; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tela-avaliacao .av-podio__nome { font-size: 17px; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.tela-avaliacao .av-podio__item--1 .av-podio__nome { font-size: 22px; }
.tela-avaliacao .av-podio__sub { font-size: 12.5px; color: var(--hint); }
.tela-avaliacao .av-podio__item--1 .av-podio__sub { color: rgba(255,255,255,.6); }
.tela-avaliacao .av-podio__pontos { position: relative; display: flex; flex-direction: column; align-items: center; }
.tela-avaliacao .av-podio__nota { font-size: 30px; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.tela-avaliacao .av-podio__item--1 .av-podio__nota { font-size: 42px; color: var(--verde); }
.tela-avaliacao .av-podio__rotulo { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--hint); }
.tela-avaliacao .av-podio__item--1 .av-podio__rotulo { color: rgba(255,255,255,.55); }

.tela-avaliacao .av-tabela td { vertical-align: middle; }
.tela-avaliacao .av-tabela th.av-col-num, .tela-avaliacao .av-tabela td.av-col-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tela-avaliacao .av-tabela th.av-col-crit { white-space: normal; min-width: 96px; max-width: 160px; line-height: 1.3; }
.tela-avaliacao .av-col-peso { display: block; font-weight: 600; letter-spacing: .04em; text-transform: none; color: var(--hint); margin-top: 2px; }
.tela-avaliacao .av-tabela .av-col-pos { width: 1%; white-space: nowrap; }
.tela-avaliacao .av-pos { font-size: 16px; font-weight: 700; }
.tela-avaliacao .av-col-equipe { min-width: 180px; }
.tela-avaliacao .av-equipe-nome { font-weight: 600; overflow-wrap: anywhere; }
.tela-avaliacao .av-equipe-sub { display: block; font-size: 12px; color: var(--hint); }
.tela-avaliacao .av-nota-final { font-size: 16px; font-weight: 700; }
.tela-avaliacao .tabela tr.av-linha-podio td { background: #F6FBF9; }
.tela-avaliacao .tabela td.av-vazio { text-align: center; color: var(--hint); font-style: italic; padding: 22px 12px; }
.tela-avaliacao .av-legenda { margin-top: 10px; }
.tela-avaliacao .av-deslize { display: none; margin: -4px 0 10px; }
@media (max-width: 640px) {
  .tela-avaliacao .av-podio { grid-template-columns: 1fr; gap: 10px; margin: 18px 0 28px; }
  .tela-avaliacao .av-podio .av-podio__item { order: 0; flex-direction: row; align-items: center; text-align: left; gap: 14px; padding: 14px 16px; }
  .tela-avaliacao .av-podio__orbita { display: none; }
  .tela-avaliacao .av-deslize { display: block; }
  .tela-avaliacao .av-podio__texto { flex: 1; }
  .tela-avaliacao .av-podio__pontos { align-items: flex-end; }
  .tela-avaliacao .av-medalha { width: 42px; height: 42px; font-size: 15px; }
  .tela-avaliacao .av-podio__item--1 .av-medalha { width: 50px; height: 50px; font-size: 18px; }
  .tela-avaliacao .av-podio__item--1 .av-podio__nome { font-size: 19px; }
  .tela-avaliacao .av-podio__nota { font-size: 24px; }
  .tela-avaliacao .av-podio__item--1 .av-podio__nota { font-size: 30px; }
}

/* avaliar.html (banca) */
.tela-avaliar main.conteudo { max-width: 820px; }
.tela-avaliar .av-cabeca { margin-bottom: 18px; }
.tela-avaliar .av-cabeca h1 { margin-bottom: 10px; overflow-wrap: anywhere; }
.tela-avaliar .av-progresso { display: flex; align-items: center; gap: 12px; }
.tela-avaliar .av-progresso__barra { flex: 1; max-width: 320px; height: 8px; border-radius: 999px; background: #E3E8ED; overflow: hidden; }
.tela-avaliar .av-progresso__barra > div { width: 0; height: 100%; border-radius: 999px; background: var(--verde); transition: width .3s; }
.tela-avaliar .av-progresso__texto { font-size: 14px; font-weight: 600; white-space: nowrap; }
.tela-avaliar .av-salvo { display: flex; align-items: flex-start; gap: 8px; margin-top: 10px; font-size: 13px; color: var(--ct); }
.tela-avaliar .av-salvo::before { content: ''; flex: none; width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; background: var(--verde); }
.tela-avaliar .av-salvo[data-estado="salvando"]::before { background: #E0A800; }
.tela-avaliar .av-salvo[data-estado="erro"] { color: var(--aviso); font-weight: 600; }
.tela-avaliar .av-salvo[data-estado="erro"]::before { background: var(--erro); }
.tela-avaliar .av-aviso { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 18px; }
.tela-avaliar .av-aviso .ponto-vivo { margin-top: 6px; }

.tela-avaliar .av-nao-achado { position: relative; overflow: hidden; text-align: center; max-width: 560px; margin: 8px auto 0; padding: 34px 22px 26px; }
.tela-avaliar .av-nao-achado__orbita { display: block; width: 80px; height: 80px; margin: 0 auto 16px; }
.tela-avaliar .av-nao-achado h1 { font-size: 22px; margin-bottom: 10px; }
.tela-avaliar .av-guardadas { margin-top: 18px; text-align: left; }
.tela-avaliar .av-guardadas ul { margin: 8px 0 0 18px; }
.tela-avaliar .av-guardadas li { overflow-wrap: anywhere; }

.tela-avaliar .av-lista-topo { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.tela-avaliar .av-lista-topo h2 { margin: 0; }
.tela-avaliar .av-lista { display: grid; grid-template-columns: 1fr; gap: 10px; }
.tela-avaliar .av-cartao { display: flex; align-items: center; gap: 12px; min-height: 76px; padding: 14px; background: var(--branco); border: 1px solid var(--linha); border-left: 4px solid var(--linha); border-radius: var(--raio); color: var(--azul); text-decoration: none; -webkit-tap-highlight-color: transparent; transition: border-color .15s, box-shadow .15s; }
.tela-avaliar .av-cartao:hover { border-color: var(--azul); }
.tela-avaliar .av-cartao:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(0,170,128,.3); }
.tela-avaliar .av-cartao--completa, .tela-avaliar .av-cartao--completa:hover { border-left-color: var(--verde); }
.tela-avaliar .av-cartao--parcial, .tela-avaliar .av-cartao--parcial:hover { border-left-color: #E0A800; }
.tela-avaliar .av-cartao--ultima { box-shadow: 0 0 0 3px rgba(0,170,128,.18); }
.tela-avaliar .av-cartao__texto { flex: 1; min-width: 0; }
.tela-avaliar .av-cartao__nome { display: block; font-size: 16px; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.tela-avaliar .av-cartao__sub { display: block; margin-top: 2px; font-size: 12.5px; color: var(--hint); }
.tela-avaliar .av-cartao__fim { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.tela-avaliar .av-cartao__nota { font-size: 12.5px; font-weight: 700; color: #006B50; }
@media (min-width: 700px) {
  .tela-avaliar .av-lista { grid-template-columns: 1fr 1fr; }
}

.tela-avaliar .av-nav-topo { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: -8px 0 10px; }
.tela-avaliar .av-voltar { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px 0 0; background: none; border: 0; color: var(--azul); font-size: 15px; font-weight: 600; cursor: pointer; }
.tela-avaliar .av-voltar:hover { text-decoration: underline; }
.tela-avaliar .av-posicao { font-size: 13px; color: var(--hint); }
.tela-avaliar .av-equipe .rotulo { display: block; }
.tela-avaliar .av-equipe .av-mt { margin-top: 14px; }
.tela-avaliar .av-equipe__topo { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.tela-avaliar .av-equipe__titulo { flex: 1; min-width: 0; }
.tela-avaliar .av-equipe__titulo h1 { font-size: 22px; margin: 0; overflow-wrap: anywhere; outline: none; }
.tela-avaliar .av-equipe__sub { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 4px; font-size: 13px; color: var(--ct); }
.tela-avaliar .av-equipe__sub:empty { display: none; }
.tela-avaliar .av-problema { margin-top: 6px; padding: 12px 14px; border-left: 3px solid var(--verde); background: var(--fundo); border-radius: 0 var(--raio) var(--raio) 0; font-size: 15px; white-space: pre-wrap; overflow-wrap: anywhere; }
.tela-avaliar .av-problema--vazio { color: var(--hint); font-style: italic; }
.tela-avaliar .av-membros { margin-top: 4px; font-size: 14.5px; color: var(--ct); overflow-wrap: anywhere; }
.tela-avaliar .av-canvas { margin-top: 16px; width: 100%; }
@media (min-width: 641px) {
  .tela-avaliar .av-canvas { width: auto; }
}

.tela-avaliar .av-criterios { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
.tela-avaliar .av-crit { padding: 16px; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); }
.tela-avaliar .av-crit__topo { display: flex; align-items: flex-start; gap: 10px; }
.tela-avaliar .av-crit__nome { flex: 1; min-width: 0; margin: 0; font-size: 16px; line-height: 1.3; }
.tela-avaliar .av-crit__lado { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.tela-avaliar .av-crit__pergunta { margin-top: 4px; font-size: 14px; font-style: italic; color: var(--ct); }
.tela-avaliar .av-notas { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.tela-avaliar .av-nota { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 52px; padding: 0; border: 1.5px solid var(--linha); border-radius: 999px; background: var(--branco); color: var(--azul); font-size: 19px; font-weight: 700; cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; transition: background .12s, border-color .12s, box-shadow .12s; }
.tela-avaliar .av-nota:hover:not(:disabled) { border-color: var(--azul); }
.tela-avaliar .av-nota:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(0,170,128,.35); }
.tela-avaliar .av-nota[aria-pressed="true"] { background: var(--azul); border-color: var(--azul); color: var(--branco); box-shadow: 0 0 0 3px rgba(0,170,128,.3); }
.tela-avaliar .av-nota[aria-pressed="true"]::before { content: ''; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--verde); }
.tela-avaliar .av-nota:disabled { cursor: default; }
.tela-avaliar .av-nota:disabled:not([aria-pressed="true"]) { opacity: .45; }
.tela-avaliar .av-notas__legenda { display: flex; justify-content: space-between; margin-top: 6px; padding: 0 6px; font-size: 12px; color: var(--hint); }
.tela-avaliar .av-marca { min-height: 18px; font-size: 12px; font-weight: 600; color: var(--hint); white-space: nowrap; }
.tela-avaliar .av-marca[data-estado="salvo"] { color: #006B50; }
.tela-avaliar .av-marca[data-estado="salvando"] { color: var(--ct); }
.tela-avaliar .av-marca[data-estado="erro"] { color: var(--aviso); }

.tela-avaliar .av-comentario { margin-top: 12px; }
.tela-avaliar .av-comentario .campo { margin-bottom: 0; }
.tela-avaliar .av-comentario textarea { min-height: 96px; }
.tela-avaliar .av-comentario textarea[readonly] { background: var(--fundo); }
.tela-avaliar .av-comentario__pe { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }

.tela-avaliar .av-total { display: flex; align-items: center; gap: 16px; margin-top: 12px; padding: 16px 18px; border-radius: var(--raio); background: var(--azul); color: var(--branco); }
.tela-avaliar .av-total__valor { flex: none; font-size: 34px; font-weight: 700; line-height: 1; color: var(--verde); font-variant-numeric: tabular-nums; }
.tela-avaliar .av-total__texto { font-size: 13.5px; color: rgba(255,255,255,.75); }
.tela-avaliar .av-total__texto strong { display: block; font-size: 15px; color: var(--branco); }
.tela-avaliar .av-total--falta { background: var(--branco); color: var(--ct); border: 1px dashed var(--linha); }
.tela-avaliar .av-total--falta .av-total__valor { font-size: 24px; color: var(--hint); }
.tela-avaliar .av-total--falta .av-total__texto { color: var(--ct); }
.tela-avaliar .av-total--falta .av-total__texto strong { color: var(--azul); }

/* Anterior / Próxima sempre à mão no celular */
.tela-avaliar .av-nav { position: sticky; bottom: 0; z-index: 5; display: flex; gap: 10px; margin-top: 16px; padding: 12px 0 calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--fundo); }
.tela-avaliar .av-nav::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; background: linear-gradient(rgba(244,246,248,0), var(--fundo)); pointer-events: none; }
.tela-avaliar .av-nav .btn { flex: 1; min-height: 50px; }
@media (prefers-reduced-motion: reduce) {
  .tela-avaliacao .ponto-vivo, .tela-avaliar .ponto-vivo, .tela-avaliacao .av-espera__orbita { animation: none; }
  .tela-avaliar .av-progresso__barra > div { transition: none; }
}

/* avaliar.html (banca) — correções: problema recolhível, toque sem "hover preso" e escolha de nota em conflito */
.tela-avaliar .av-problema--recolhido { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.tela-avaliar .av-ler-mais { display: inline-flex; align-items: center; min-height: 36px; margin-top: 2px; padding: 0; background: none; border: 0; color: var(--azul); font: inherit; font-size: 13.5px; font-weight: 600; text-decoration: underline; cursor: pointer; }
@media (max-width: 640px) {
  .tela-avaliar .av-equipe__topo { margin-bottom: 10px; }
  .tela-avaliar .av-equipe .av-mt { margin-top: 10px; }
  .tela-avaliar .av-canvas { margin-top: 12px; }
}
/* no celular o :hover fica preso depois do toque: o botão sem nota não pode parecer marcado */
@media (hover: none) {
  .tela-avaliar .av-nota:hover:not(:disabled):not([aria-pressed="true"]) { border-color: var(--linha); }
}
body.av-com-dialogo { overflow: hidden; }
.tela-avaliar .av-conflito { position: fixed; inset: 0; z-index: 50; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0,31,64,.55); }
.tela-avaliar .av-conflito__caixa { width: 100%; max-width: 480px; max-height: calc(100vh - 32px); overflow-y: auto; padding: 22px 20px 18px; background: var(--branco); border-radius: var(--raio); border-top: 4px solid #E0A800; box-shadow: 0 12px 40px rgba(0,31,64,.3); }
.tela-avaliar .av-conflito__caixa h2 { margin: 0 0 8px; font-size: 19px; }
.tela-avaliar .av-conflito__caixa > p { font-size: 14.5px; color: var(--ct); overflow-wrap: anywhere; }
.tela-avaliar .av-conflito__versoes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.tela-avaliar .av-conflito__versao { padding: 12px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--fundo); min-width: 0; }
.tela-avaliar .av-conflito__versao .rotulo { display: block; }
.tela-avaliar .av-conflito__valor { margin: 4px 0 2px; font-size: 30px; font-weight: 700; line-height: 1.1; color: var(--azul); }
.tela-avaliar .av-conflito--texto .av-conflito__versoes { grid-template-columns: 1fr; }
.tela-avaliar .av-conflito--texto .av-conflito__valor { max-height: 140px; overflow-y: auto; font-size: 14.5px; font-weight: 400; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.tela-avaliar .av-conflito__botoes { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.tela-avaliar .av-conflito__botoes .btn { width: 100%; min-height: 48px; }

/* ---------- Identificação por e-mail (identidade.js) ---------- */
.topo__usuario { margin-left: auto; display: flex; align-items: center; gap: 10px; font-size: 13px; color: rgba(255,255,255,.75); min-width: 0; }
.topo__usuario-txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topo__usuario strong { color: #fff; font-weight: 600; }
.topo__sair { background: transparent; border: 1px solid rgba(255,255,255,.3); color: #fff; border-radius: var(--raio); padding: 4px 10px; font-size: 12px; font-weight: 600; cursor: pointer; flex: none; }
.topo__sair:hover, .topo__sair:focus-visible { border-color: var(--verde); }
.ident { position: fixed; inset: 0; z-index: 50; background: rgba(0,31,64,.72); display: flex; align-items: center; justify-content: center; padding: 16px; }
.ident__cartao { background: #fff; border-top: 4px solid var(--verde); border-radius: var(--raio); width: 100%; max-width: 440px; padding: 24px 24px 22px; display: flex; flex-direction: column; gap: 14px; max-height: calc(100dvh - 32px); overflow: auto; }
.ident__kicker { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--verde-escuro); }
.ident__titulo { font-size: 22px; margin: -6px 0 0; }
.ident__sub { color: var(--ct); font-size: 14px; margin-top: -8px; }
.ident .campo label, .ident .rotulo { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.ident .entrada { width: 100%; }
.ident__extras { display: flex; flex-direction: column; gap: 14px; }
.ident__botao { width: 100%; min-height: 48px; font-size: 16px; }
@media (max-width: 640px) {
  .topo__usuario { order: 3; width: 100%; margin-left: 0; padding-bottom: 2px; }
}

/* ---------- Diálogo de confirmação "sem volta" ---------- */
.dlg { position: fixed; inset: 0; z-index: 60; background: rgba(0,31,64,.72); display: flex; align-items: center; justify-content: center; padding: 16px; }
.dlg__cartao { background: #fff; border-top: 4px solid #E0A100; border-radius: var(--raio); width: 100%; max-width: 520px; padding: 22px 24px; max-height: calc(100dvh - 32px); overflow: auto; }
.dlg__titulo { font-size: 20px; margin-bottom: 8px; }
.dlg__texto { color: var(--ct); font-size: 15px; }
.dlg__resumo { margin: 14px 0 4px; background: var(--fundo); border-radius: var(--raio); padding: 12px 14px; font-size: 14px; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 40vh; overflow: auto; }
.dlg__alerta { margin-top: 12px; font-weight: 600; color: var(--aviso); font-size: 14px; }
.dlg__botoes { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; flex-wrap: wrap; }
.dlg__botoes .btn { min-height: 44px; }

.topo__funcao { color: var(--verde); font-weight: 700; }
.aba--facilitadores { margin-left: auto; font-size: 13px; opacity: .85; border: 1px solid rgba(255,255,255,.25); border-bottom: 0; }
.aba--facilitadores.ativa { opacity: 1; }

/* ---------- Credenciamento (aba própria) ---------- */
.ident--no-lugar { position: static; inset: auto; z-index: auto; background: none; padding: 0; display: block; }
.ident--no-lugar .ident__cartao { max-width: 520px; margin: 0 auto; max-height: none; box-shadow: 0 1px 2px rgba(0,31,64,.06); border: 1px solid var(--linha); border-top: 4px solid var(--verde); }
.ident__dica { font-size: 13px; color: var(--ct); text-align: center; }
.ident__dica a { color: var(--verde-escuro); font-weight: 600; }
