/* TDP Inscrições — formulário público e painel admin */

.tdp-insc { max-width: 60rem; }
.tdp-insc, .tdp-insc *, .tdp-insc *::before, .tdp-insc *::after { box-sizing: border-box; }
.tdp-insc-form { margin: 20px 0; }
.tdp-insc fieldset { min-width: 0; } /* fieldset tem min-width:min-content por padrão e estoura no mobile */

/* Grade de 12 colunas; cada campo é rótulo/controle/meta. Com subgrid, essas
   três faixas se alinham entre os campos da mesma linha, mesmo quando um
   rótulo ou texto de ajuda quebra em mais linhas. */
.tdp-insc-linha { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 6px 20px; align-items: start; margin: 0 0 18px; }
.tdp-insc-linha:last-child { margin-bottom: 0; }
.tdp-insc-campo { grid-column: span 12; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
@supports (grid-template-rows: subgrid) {
  .tdp-insc-campo { display: grid; grid-template-rows: subgrid; grid-row: span 3;
    align-content: start; row-gap: 6px; }
}
.tdp-insc-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tdp-insc-campo--botao .tdp-btn { justify-self: start; align-self: start; }
@supports (grid-template-rows: subgrid) {
  .tdp-insc-campo--botao .tdp-btn { grid-row: 2; } /* alinha o botão à faixa dos controles */
}

/* Larguras por conteúdo a partir de 700px; abaixo disso, uma coluna */
@media (min-width: 700px) {
  .tdp-insc-campo--email        { grid-column: span 7; }
  .tdp-insc-campo--botao        { grid-column: span 5; }
  .tdp-insc-campo--cpf          { grid-column: span 4; }
  .tdp-insc-campo--data         { grid-column: span 3; }
  .tdp-insc-campo--tel          { grid-column: span 5; }
  .tdp-insc-campo--nome         { grid-column: span 7; }
  .tdp-insc-campo--resp-tel     { grid-column: span 5; }
  .tdp-insc-campo--escolaridade { grid-column: span 8; }
  .tdp-insc-campo--cep          { grid-column: span 3; }
  .tdp-insc-campo--logradouro   { grid-column: span 7; }
  .tdp-insc-campo--numero       { grid-column: span 2; }
  .tdp-insc-campo--complemento  { grid-column: span 3; }
  .tdp-insc-campo--bairro       { grid-column: span 4; }
  .tdp-insc-campo--cidade       { grid-column: span 3; }
  .tdp-insc-campo--uf           { grid-column: span 2; }
  .tdp-insc-campo--uf2          { grid-column: span 3; }
}

.tdp-insc label { font-weight: 700; line-height: 1.35; }
.tdp-insc-opcional { font-weight: 400; font-size: .9em; opacity: .85; }
.tdp-insc input[type="text"], .tdp-insc input[type="email"], .tdp-insc input[type="tel"],
.tdp-insc input[type="search"], .tdp-insc textarea {
  width: 100%; padding: 10px 12px; font-size: 1rem; border-radius: 8px;
  border: 1.5px solid var(--wp--preset--color--accent-5, #b9b2a0);
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #202e2d);
}
.tdp-insc input[aria-invalid="true"], .tdp-insc textarea[aria-invalid="true"] { border-color: #a92c12; border-width: 2px; }
.tdp-insc-ajuda { font-size: .85rem; margin: 0; opacity: .85; }
.tdp-insc-erro { font-size: .9rem; font-weight: 700; color: #a92c12; margin: 0; }
html[data-theme="dark"] .tdp-insc-erro { color: #ff9f87; }
html[data-theme="contrast"] .tdp-insc-erro { color: #000; text-decoration: underline; }

.tdp-insc-grupo { border: 1px solid var(--wp--preset--color--accent-5, #d9d2c0); border-radius: 12px;
  padding: 16px 20px 20px; margin: 0 0 20px; }
.tdp-insc-grupo legend { font-weight: 700; padding: 0 8px; }

.tdp-insc-aviso { border-radius: 10px; padding: 14px 18px; margin: 16px 0; border: 2px solid; }
.tdp-insc-aviso--ok   { border-color: #2c6e49; background: var(--wp--preset--color--accent-3, #eef3ef); }
.tdp-insc-aviso--erro { border-color: #a92c12; background: #fbeae5; color: #4d1405; }
html[data-theme="dark"] .tdp-insc-aviso--erro { background: #3a1c13; color: #ffd9cd; }
html[data-theme="contrast"] .tdp-insc-aviso--erro { background: #fff; color: #000; border-width: 3px; }
.tdp-insc-destaque { border-left: 4px solid var(--wp--preset--color--accent-1, #31857d);
  background: var(--wp--preset--color--accent-3, #eef3ef); padding: 12px 16px; border-radius: 0 10px 10px 0; }
html[data-theme="dark"] .tdp-insc-destaque,
html[data-theme="dark"] .tdp-insc-aviso--ok { background: #22322f; }

/* Honeypot: fora da tela para todo mundo, inclusive leitores (é uma armadilha p/ robôs) */
.tdp-insc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Checkboxes de atividades (fallback sem JS e fonte de verdade do combobox) */
.tdp-insc-checkgrupo { border: none; padding: 0; margin: 12px 0; }
.tdp-insc-checkgrupo legend { font-size: .95rem; opacity: .9; }
.tdp-insc-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; padding: 6px 0; }
.tdp-insc-check input { width: 22px; height: 22px; min-width: 22px; margin-top: 2px; accent-color: var(--wp--preset--color--accent-1, #31857d); }

/* ===== Combobox autocomplete acessível ===== */
.tdp-cb { position: relative; max-width: 640px; }
.tdp-cb input[role="combobox"] { width: 100%; }
.tdp-cb-lista { position: absolute; z-index: 40; inset-inline: 0; top: calc(100% + 4px);
  max-height: 320px; overflow-y: auto; margin: 0; padding: 4px; list-style: none;
  background: var(--wp--preset--color--base, #fff);
  border: 1.5px solid var(--wp--preset--color--accent-5, #b9b2a0); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.tdp-cb-lista[hidden] { display: none; }
.tdp-cb-opcao { padding: 10px 12px; border-radius: 6px; cursor: pointer; }
.tdp-cb-opcao .tdp-cb-trilha { display: block; font-size: .8rem; opacity: .8; }
.tdp-cb-opcao[aria-selected="true"], .tdp-cb-opcao:hover {
  background: var(--wp--preset--color--accent-6, #202e2d); color: #fff; }
.tdp-cb-opcao[aria-selected="true"] .tdp-cb-trilha { opacity: .9; }
.tdp-cb-vazio { padding: 10px 12px; opacity: .8; }
html[data-theme="contrast"] .tdp-cb-opcao[aria-selected="true"], html[data-theme="contrast"] .tdp-cb-opcao:hover { background: #000; }

/* Selecionados (chips) */
.tdp-cb-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 12px 0 0; list-style: none; }
.tdp-cb-chip { display: flex; align-items: center; gap: 8px; max-width: 100%;
  background: var(--wp--preset--color--accent-3, #eef3ef);
  border: 1.5px solid var(--wp--preset--color--accent-1, #31857d);
  border-radius: 999px; padding: 6px 8px 6px 14px; font-size: .95rem; }
html[data-theme="dark"] .tdp-cb-chip { background: #22322f; }
.tdp-cb-chip button { border: none; background: var(--wp--preset--color--accent-6, #202e2d); color: #fff;
  min-width: 26px; height: 26px; border-radius: 50%; cursor: pointer; font-size: 1rem; line-height: 1; }
.tdp-cb-chip button:hover { background: #a92c12; }
html[data-theme="contrast"] .tdp-cb-chip { border-color: #000; }
html[data-theme="contrast"] .tdp-cb-chip button { background: #000; }

.tdp-insc-checkgrupo--erro { border-left: 3px solid #a92c12; padding-left: 12px; }
.tdp-insc-resumo { background: var(--wp--preset--color--accent-3, #eef3ef); border-radius: 8px;
  padding: 10px 14px; font-size: .95rem; }
html[data-theme="dark"] .tdp-insc-resumo { background: #22322f; }
.tdp-insc select { width: 100%; padding: 10px 12px; font-size: 1rem; border-radius: 8px;
  border: 1.5px solid var(--wp--preset--color--accent-5, #b9b2a0);
  background: var(--wp--preset--color--base, #fff);
  color: var(--wp--preset--color--contrast, #202e2d); }

/* ===== Painel admin ===== */
.tdp-insc-badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: .8rem; font-weight: 600; }
.tdp-insc-badge--confirmada { background: #d9efe3; color: #14532d; }
.tdp-insc-badge--espera     { background: #fdf0d5; color: #7a4b00; }
.tdp-insc-badge--cancelada  { background: #eee; color: #555; text-decoration: line-through; }
.tdp-insc-colunas { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
@media (max-width: 1100px) { .tdp-insc-colunas { grid-template-columns: 1fr; } }
.tdp-insc-admin .tdp-insc-cards { display: flex; flex-wrap: wrap; gap: 14px; margin: 16px 0; }
.tdp-insc-cardstat { background: #fff; border: 1px solid #dcdcde; border-left: 4px solid #31857d;
  border-radius: 8px; padding: 12px 20px; font-size: .95rem; }
.tdp-insc-cardstat .tdp-insc-num { display: block; font-size: 1.6rem; font-weight: 700; color: #202e2d; }
.tdp-insc-filtros { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: flex-end;
  background: #fff; border: 1px solid #dcdcde; border-radius: 8px; padding: 14px 18px; margin-bottom: 18px; }
.tdp-insc-filtros label { display: block; font-weight: 600; margin-bottom: 4px; }
.tdp-insc-campo--atividade { flex: 1 1 340px; max-width: 560px; }
.tdp-insc-campo--busca { flex: 0 1 280px; }
.tdp-insc-filtros .tdp-insc-campo--botao { display: flex; flex-direction: row; gap: 8px; }
.tdp-insc-filtros input, .tdp-insc-filtros select { width: 100%; }
.tdp-insc-admin table.widefat td { vertical-align: top; }
.tdp-insc-paginacao { margin: 14px 0; }
.tdp-insc-resumo { max-width: 900px; }
