/* ── Teléfonos con prefijo de país (telInstalar) ── */
.tel-wrap { position: relative; display: flex; align-items: stretch; width: 100%; }
.tel-wrap .tel-flag { display: inline-flex; align-items: center; gap: 4px; padding: 0 8px; border: 1px solid var(--border, #e2e8f0); border-right: none; border-radius: 8px 0 0 8px; background: var(--bg-hover, #f1f5f9); cursor: pointer; font-size: 0.9rem; color: inherit; white-space: nowrap; }
.tel-wrap .tel-flag:disabled { cursor: default; opacity: 0.7; }
.tel-wrap .tel-flag-emoji { font-size: 1.15rem; line-height: 1; }
.tel-wrap .tel-flag-pref { font-size: 0.8rem; color: var(--text-muted, #64748b); }
.tel-wrap .tel-num { flex: 1; min-width: 0; border-radius: 0 8px 8px 0 !important; }
.tel-wrap .tel-num.tel-invalid { border-color: #dc3545 !important; box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.15); }
.tel-wrap .tel-lista { position: absolute; top: 100%; left: 0; z-index: 1200; width: min(320px, 90vw); max-height: 280px; overflow: auto; margin-top: 4px; background: var(--bg-card, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 8px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); }
.tel-wrap .tel-item { display: grid; grid-template-columns: 28px 52px 1fr; gap: 6px; align-items: center; padding: 6px 10px; cursor: pointer; font-size: 0.9rem; }
.tel-wrap .tel-item:hover, .tel-wrap .tel-item-actual { background: var(--bg-hover, #f1f5f9); }
.tel-wrap .tel-item-pref { color: var(--text-muted, #64748b); font-variant-numeric: tabular-nums; }
.tel-wrap .tel-item-nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tel-flag-img { display: inline-block; vertical-align: -2px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,0.12); }
.phone-link-green .tel-flag-img { margin: 0 4px 0 2px; }

/* ── Combo de relación: texto libre + botón que despliega los valores ── */
.rel-combo { position: relative; display: inline-flex; align-items: stretch; min-width: 0; }
.rel-combo input.rel-input { flex: 1; min-width: 0; width: 100%; border-radius: 8px 0 0 8px; }
.rel-combo-btn { flex: 0 0 auto; padding: 0 9px; border: 1px solid var(--border-color, #cbd5e1); border-left: none; border-radius: 0 8px 8px 0; background: var(--bg-hover, #f1f5f9); color: inherit; cursor: pointer; font-size: 0.85rem; line-height: 1; }
.rel-combo-btn:hover { background: var(--bg-secondary, #e2e8f0); }
.rel-combo-panel { position: fixed; z-index: 10050; overflow-y: auto; background: var(--bg-card, var(--bg-primary, #fff)); color: inherit; border: 1px solid var(--border-color, #cbd5e1); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.18); font-size: 0.9rem; }
.rel-combo-group { padding: 6px 10px 2px; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted, #64748b); }
.rel-combo-item { padding: 6px 10px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rel-combo-item:hover, .rel-combo-item.activo { background: var(--bg-hover, #f1f5f9); }
.rel-combo-vacio { padding: 8px 10px; color: var(--text-muted, #64748b); font-style: italic; }

/* ── Aviso de posibles duplicados bajo la dirección ── */
.dup-aviso { margin: 6px 0 2px; padding: 8px 12px; border: 1px solid #f59e0b; border-radius: 8px; background: rgba(245, 158, 11, 0.10); font-size: 0.85rem; line-height: 1.5; }
.dup-aviso .dup-item a { color: inherit; text-decoration: underline; }
.location-map-precision { color: var(--text-muted, #64748b); font-size: 0.8rem; margin: 0 10px; }

/* Formulario de localización: botón de ubicación y resumen de fotos */
.btn-mi-ubicacion { align-self: flex-end; margin: 0 0 2px 8px; white-space: nowrap; }
.btn-enlace-quitar { background: none; border: none; color: var(--danger); cursor: pointer; text-decoration: underline; font-size: 12px; padding: 2px 4px; white-space: nowrap; }

/* Aviso del vigilante de pantalla en blanco */
.vig-aviso { position: fixed; left: 50%; top: 18%; transform: translateX(-50%); z-index: 20000; background: var(--bg-card); color: inherit; border: 1px solid var(--border-color); border-radius: 12px; padding: 18px 22px; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18); max-width: 420px; text-align: center; }
.vig-aviso-titulo { margin: 0 0 12px; font-weight: 600; }
.vig-aviso-texto { margin: 0 0 14px; color: var(--text-muted); font-size: 0.9rem; }
.vig-aviso-reintentar { margin-left: 8px; }

/* Resumen de fotos seleccionadas (dentro de contenedores de miniaturas) */
.fotos-resumen { width: 100%; box-sizing: border-box; border: 1px dashed var(--border-color); border-radius: 8px; padding: 8px 14px; font-size: 13px; }
.fotos-resumen-fila { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 6px 2px; }
.fotos-resumen-fila strong { font-variant-numeric: tabular-nums; }
.fotos-resumen-sep { border-top: 1px solid var(--border-color); }
.fotos-resumen-nota { opacity: 0.65; font-size: 12px; }
.dir-ac-aviso { color: var(--warning); }

/* Campo de dirección con una búsqueda de sugerencias en marcha */
input.buscando { background-image: linear-gradient(90deg, transparent 0 60%, var(--primary) 60% 62%, transparent 62% 100%); background-size: 200% 2px; background-repeat: no-repeat; background-position: 0 100%; animation: buscando-barra 1s linear infinite; }
@keyframes buscando-barra { from { background-position: 0 100%; } to { background-position: 200% 100%; } }

/* Aviso breve al pie (email copiado) y enlace del creador de un evento */
.aviso-flotante { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); background: var(--text-primary); color: var(--bg-card); padding: 6px 16px; border-radius: 6px; font-size: 0.82rem; z-index: 99999; }
.cal-creador-email { color: var(--primary); text-decoration: none; cursor: pointer; }

