/* Spin Club — páginas de formulário (cadastro e atualização de quadra, termos). Complementa torneios.css:
   mesma identidade (#F7F7F7, #FF6A00, cards #FFFFFF, Poppins). Os campos de texto, selects e botões vêm de torneios.css. */

.form-cabeca .sobre a{color:inherit; text-decoration:none;}
.form-pagina{max-width:820px; padding-bottom:90px;}

/* Blocos e campos */
.f-bloco{background:var(--card); border:1px solid var(--line); border-radius:20px; padding:26px 24px; margin-bottom:18px;}
.f-bloco h2{font-size:22px; margin-bottom:16px;}
.f-texto{font-size:14.5px; color:var(--text-2); line-height:1.55; margin:-6px 0 16px;}
.f-campo{margin-bottom:18px; border:0;}
.f-campo > label, .f-campo legend{display:block; font-size:14px; font-weight:600; color:var(--text); margin-bottom:8px;}
.f-dica{font-size:13px; font-weight:400; color:var(--mute); margin-left:6px;}
.f-obr{color:var(--orange-2);}
input[type=url], input[type=time]{width:100%; font-family:'Poppins',sans-serif; font-size:16px; color:var(--text); background:var(--bg); border:1.5px solid var(--line); border-radius:12px; padding:12px 14px; min-height:48px; color-scheme:dark;}
input[type=url]:focus, input[type=time]:focus{outline:none; border-color:var(--orange); box-shadow:0 0 0 3px rgba(255,106,0,0.2);}
textarea{min-height:90px;}
[aria-invalid=true], fieldset[aria-invalid=true] .f-esportes{border-color:var(--erro) !important;}
.f-erro{color:var(--erro); font-size:13.5px; font-weight:500; margin-top:6px;}

/* Opções (rádio e caixa) */
.f-opcao{display:inline-flex; align-items:center; gap:8px; font-size:15px; font-weight:500; color:var(--text); margin-right:18px; cursor:pointer; padding:6px 0; min-height:36px;}
.f-opcao input{width:18px; height:18px; accent-color:var(--orange);}
.f-inline .f-opcao{margin-right:14px;}
.f-linha-opcoes{display:flex; flex-wrap:wrap; gap:4px 0;}
.f-esportes{display:grid; gap:10px; border:1.5px solid transparent; border-radius:14px;}
.f-esporte{display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; background:var(--card-2); border:1px solid var(--line); border-radius:14px; padding:10px 14px;}
.f-esporte .f-opcao{min-width:140px;}
.f-qtd{display:none; align-items:center; gap:8px; font-size:13.5px; font-weight:500; color:var(--text-2);}
.f-qtd input{width:90px; min-height:40px; padding:8px 10px;}
.f-qtd.visivel{display:flex;}
.f-esporte .f-erro{width:100%; margin-top:0;}

/* Grades */
.f-grade2{display:grid; grid-template-columns:1fr 1fr; gap:0 16px;}
.f-grade3{display:grid; grid-template-columns:repeat(3, 1fr); gap:0 16px;}
.f-grade-cidade{display:grid; grid-template-columns:1fr 110px; gap:0 16px;}

/* Status, fotos, isca, aceite, alerta */
.f-status-cep, .f-status-fotos{font-size:13.5px; font-weight:500; color:var(--mute); align-self:center; margin-top:10px;}
.f-fotos-atuais{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:16px;}
.f-fotos-atuais label{font-size:13px; font-weight:500; color:var(--text-2);}
.f-fotos-atuais img{width:120px; height:84px; object-fit:cover; border-radius:10px; margin-bottom:6px;}
.f-isca{position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden;}
.f-aceite{font-size:15px; line-height:1.55; color:var(--text-2); display:flex; gap:12px; align-items:flex-start;}
.f-aceite input{width:20px; height:20px; margin-top:2px; flex-shrink:0; accent-color:var(--orange);}
.f-lgpd{font-size:13.5px; color:var(--mute); margin-top:10px;}
.f-alerta{background:rgba(255,107,107,0.12); border:1px solid rgba(255,107,107,0.45); border-radius:14px; padding:14px 16px; font-weight:500; margin-bottom:18px; line-height:1.5;}
.f-alerta ul{margin:8px 0 0 18px; font-weight:400; color:var(--text-2);}

/* Botões com os nomes antigos, no visual atual */
.btn-primary{background:var(--grad); color:#fff;}
.btn-primary:hover{filter:brightness(1.06);}
.btn-ghost{background:transparent; border-color:var(--line); color:var(--text);}
.btn-ghost:hover{border-color:var(--orange);}
.f-enviar{width:100%; min-height:54px; margin-top:8px; font-size:16px;}
.f-enviar[disabled]{opacity:0.6; cursor:wait;}

/* Página de sucesso (o cartão vem de torneios.css) */
.convite{margin-top:26px; padding-top:24px; border-top:1px solid var(--line);}
.convite h3{font-size:18px; font-style:normal; text-transform:none; margin-bottom:16px;}
.sucesso .acoes{flex-direction:row; justify-content:center; flex-wrap:wrap;}

/* Termos */
.termos{background:var(--card); border:1px solid var(--line); border-radius:20px; padding:8px 26px 28px;}
.termos h2{font-size:22px; margin:26px 0 12px;}
.termos p, .termos li{font-size:16px; line-height:1.7; color:var(--text-2);}
.termos ul{margin-left:20px;}
.termos-indice{background:var(--faixa); border:1px solid var(--faixa-linha); border-radius:14px; padding:14px 20px; margin:18px 0 6px;}
.termos-indice ol{margin-left:20px; columns:2; column-gap:28px;}
.termos-indice li{font-size:15px; line-height:1.9;}

/* Horário guiado, sem número e prévia */
.f-dias{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
.f-dia{position:relative; cursor:pointer;}
.f-dia input{position:absolute; opacity:0; width:1px; height:1px;}
.f-dia span{display:inline-flex; align-items:center; justify-content:center; min-width:52px; min-height:44px; padding:0 12px; border-radius:100px; border:1.5px solid var(--line); background:var(--bg); color:var(--text-2); font-weight:600; font-size:14px;}
.f-dia input:checked + span{background:var(--grad); border-color:transparent; color:#fff;}
.f-dia input:focus-visible + span{outline:2px solid var(--orange); outline-offset:2px;}
.f-horas{margin-bottom:0;}
.f-previa{font-size:14px; font-weight:600; color:var(--orange-2); margin:-4px 0 14px; min-height:1.2em;}
.f-previa.f-previa-erro{color:var(--erro);}
fieldset.f-horario[aria-invalid=true] .f-dias span{border-color:var(--erro);}
.f-sem-numero{margin-top:8px; font-size:14px;}
input:disabled{opacity:0.5; cursor:not-allowed;}

@media (max-width:640px){
  .f-grade2, .f-grade3{grid-template-columns:1fr;}
  .f-bloco{padding:22px 18px;}
  .termos{padding:4px 18px 22px;}
  .termos-indice ol{columns:1;}
}
