:root{
  --bg:#0b0f14; --card:#121825; --muted:#9aa3b2; --text:#eaf0ff;
  --border:rgba(255,255,255,.12); --ring:#60a5fa; --ok:#34d399; --err:#ef4444;
  --radius:16px; --shadow:0 10px 28px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;background:linear-gradient(180deg,#0b0f14 0%,#0b0f14 40%,#0e1522 100%);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial,sans-serif}

.container{max-width:820px;margin:24px auto;padding:0 16px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}

h2{margin:0 0 14px;text-align:center}
label{display:block;margin-top:14px;font-weight:700}
.help{color:var(--muted);font-size:13px;margin-top:6px}

.row{display:flex;gap:12px;flex-wrap:wrap}
.row > *{flex:1 1 220px}

input,select,button{
  width:100%;padding:12px;border:1px solid var(--border);border-radius:12px;
  font-size:16px;background:#0f1420;color:var(--text)
}
input::placeholder, select:has(option[value=""]:checked){color:#9aa3b2}
input:focus,select:focus{outline:none;box-shadow:0 0 0 3px rgba(96,165,250,.35)}

button{
  margin-top:20px;background:var(--ok);color:#06281b;border:none;font-weight:800;cursor:pointer;border-radius:999px
}
button:hover{filter:brightness(1.05)}
button[disabled]{opacity:.6;cursor:not-allowed}

/* estado inválido */
.field{margin-top:8px}
.field.invalid input,
.field.invalid select{
  border-color:rgba(239,68,68,.6); box-shadow:0 0 0 3px rgba(239,68,68,.25)
}
.field .error{
  display:none; color:#fecaca; font-size:13px; margin-top:6px
}
.field.invalid .error{display:block}

/* Radio “cartões” */
.tickets, #grupo-sexo{display:grid;gap:12px;margin-top:8px}
.radio-card{
  position:relative;display:flex;gap:12px;padding:14px;border:2px solid var(--border);
  border-radius:14px;cursor:pointer;transition:.15s transform,.15s border-color,.15s box-shadow;background:#0f1420
}
.radio-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.25)}
.radio-card input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.radio-card .check{
  width:22px;height:22px;flex:0 0 22px;margin-top:2px;border:2px solid var(--border);border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center
}
.radio-card .dot{width:10px;height:10px;border-radius:50%;background:transparent;transition:.15s}
.radio-card.active{border-color:var(--ok)}
.radio-card.active .check{border-color:var(--ok)}
.radio-card.active .dot{background:var(--ok)}
.radio-card .content{flex:1}
.radio-card .title{font-weight:800}

/* bloco “card” externo opcional */
.form-wrap{margin:12px 0}