/* Estilos compartidos del formulario de pre-registro, usado tanto en
   /preregistro/ como embebido en /checkin/ (registro de visitantes). */
.pf-card { background: #fff; border-radius: 18px; border: 1px solid #e6e3e0; padding: 20px; margin-bottom: 14px; }

.pf-sec-head { display:flex; align-items:center; gap: 12px; margin-bottom: 14px; }
.pf-sec-badge { width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
             display:flex; align-items:center; justify-content:center;
             background: var(--color-brand-light); color: var(--color-brand); }
.pf-sec-title { font-size: 1rem; font-weight: 700; line-height:1.25; }
.pf-sec-sub   { font-size: .8rem; color: var(--color-gray); margin-top: 1px; }

.pf-persona-row { display:flex; gap:.5rem; align-items:center; margin-bottom:.6rem; }
.pf-persona-row:last-of-type { margin-bottom: 0; }
.pf-field { flex:1; min-width:0; padding: .7rem .85rem; font-size: 1rem; border-radius: 12px;
         border: 1.5px solid #e5e1dd; background: var(--color-bg); color: var(--color-ink); }
.pf-field:focus { outline:none; border-color: var(--color-brand); background:#fff;
               box-shadow: 0 0 0 3px rgba(45,106,79,.12); }
select.pf-field { flex: 0 0 108px; }

.pf-btn-quitar { flex-shrink:0; width:44px; height:44px; border-radius:12px; border:1.5px solid #e5e1dd;
              background:#fff; color: var(--color-gray); display:flex; align-items:center; justify-content:center;
              cursor:pointer; }
.pf-btn-quitar:hover { border-color:#e0a898; color:#b3543c; background:#fdf3f1; }
.pf-btn-quitar .ico { width:16px; height:16px; }

.pf-btn-agregar { width:100%; margin-top:.4rem; padding:.65rem; border-radius:12px; border:1.5px dashed #cfcbc6;
               background:none; color: var(--color-brand); font-weight:600; font-size:.9rem;
               display:flex; align-items:center; justify-content:center; gap:6px; cursor:pointer; }
.pf-btn-agregar:hover { background: var(--color-brand-light); border-color: var(--color-brand); }

.pf-toggle-ninos { width:100%; text-align:left; padding: 0; border:none; background:none; cursor:pointer;
                display:flex; align-items:center; justify-content:space-between; }
.pf-toggle-ninos .chev { color: var(--color-gray); transition: transform .2s; }
.pf-toggle-ninos[aria-expanded="true"] .chev { transform: rotate(90deg); }
.pf-ninos-body { max-height:0; overflow:hidden; transition: max-height .25s ease; }
.pf-ninos-body.open { max-height: 600px; }
.pf-ninos-body-inner { padding-top: 16px; }

.pf-select-wrap { position:relative; }
.pf-select-wrap select.pf-field { width:100%; flex:none; appearance:none; -webkit-appearance:none; padding-right:2.4rem; }
.pf-select-wrap .chev-icon { position:absolute; right:14px; top:50%; transform:translateY(-50%); pointer-events:none; color: var(--color-gray); }

.pf-label { display:block; font-size:.8rem; font-weight:700; color: var(--color-gray);
         text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }

.pf-errores { background:#fdf1ef; border:1.5px solid #f0c9bf; color:#8a3520; border-radius:14px;
           padding:12px 16px; font-size:.85rem; margin-bottom:14px; }
.pf-errores div { margin-bottom:2px; }
.pf-errores div:last-child { margin-bottom:0; }

.pf-btn-submit { width:100%; padding:.9rem; border:none; border-radius:14px; background: var(--color-accent);
              color:#fff; font-size:1rem; font-weight:700; cursor:pointer;
              display:flex; align-items:center; justify-content:center; gap:8px; }
.pf-btn-submit:hover { background: var(--color-accent-dark); }
.pf-btn-submit:disabled { opacity:.65; cursor:default; }
