.wsp-widget-container { position: fixed; z-index: 10000; }
#wsp-floating-button { display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 5px 15px rgba(0,0,0,0.2); transition: all 0.3s ease; background-size: cover; background-position: center; background-repeat: no-repeat; }
#wsp-floating-button:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,0.25); }
.wsp-button-icon svg { width: 32px; height: 32px; transition: fill 0.3s ease; }
.wsp-button-text { font-size: 16px; line-height: 1; font-weight: 700; color: #fff; }
.wsp-style-modern { width: 64px; height: 64px; border-radius: 50%; }
.wsp-style-modern .wsp-button-text { display: none; }
.wsp-style-classic { height: 50px; border-radius: 25px; padding: 0 24px; }
.wsp-style-classic .wsp-button-icon { margin-right: 10px; }
@keyframes wsp-pulse { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.5); } 70% { box-shadow: 0 0 0 20px rgba(37, 211, 102, 0); } 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); } }
.wsp-anim-pulse { animation: wsp-pulse 2s infinite; }
.wsp-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0s 0.3s; z-index: 10001;}
.wsp-modal.is-visible { opacity: 1; visibility: visible; transition: opacity 0.3s ease; }
.wsp-modal-content { background: #fff; padding: 25px; border-radius: 8px; width: 90%; max-width: 400px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); transform: scale(0.9); transition: transform 0.3s ease; }
.wsp-modal.is-visible .wsp-modal-content { transform: scale(1); }
.wsp-modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #eee; padding-bottom: 15px; margin-bottom: 20px; }
.wsp-modal-header h3 { margin: 0; font-size: 18px; flex: 1; }
#wsp-department-image { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; margin-right: 12px; display: none;}
.wsp-modal-close-btn { border: none; background: none; font-size: 28px; cursor: pointer; color: #888; padding:0; line-height: 1;}
.wsp-form-step label:not(.wsp-terms-label) { display: block; font-weight: 600; margin-bottom: 8px; }
.wsp-form-step input, .wsp-form-step select, .wsp-form-step textarea { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 5px; font-size: 16px; margin-bottom: 15px; box-sizing: border-box; }
.wsp-modal-footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.wsp-modal-footer button { padding: 10px 20px; border-radius: 5px; border: 1px solid transparent; font-weight: 600; cursor: pointer; transition: all 0.2s ease; }
#wsp-form-prev { background: #eee; color: #333; }
#wsp-form-next, #wsp-form-submit { color: #fff; }
#wsp-form-submit:disabled { opacity: 0.7; cursor: wait; }
.wsp-form-response { margin-top: 15px; padding: 12px; border-radius: 5px; display: none; text-align: center; }
.wsp-form-response.success { display: block; background: #e8f5e9; color: #2e7d32; }
.wsp-form-response.error { display: block; background: #ffebee; color: #c62828; }
.wsp-phone-field { display: flex; }
.wsp-phone-field #wsp-country-code { flex-basis: 120px; border-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.wsp-phone-field #wsp-phone { flex: 1; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.wsp-terms-label { display: flex; align-items: flex-start; gap: 10px; font-weight: normal; font-size: 14px; }
.wsp-terms-label input[type="checkbox"] { width: auto; margin-top: 3px; }
.wsp-terms-label a { text-decoration: underline; color: #333; }
/* Estilos para el uploader de imágenes en el admin */
.wsp-image-uploader .wsp-image-preview { width: 60px; height: 60px; border: 1px solid #ddd; object-fit: cover; border-radius: 50%; vertical-align: middle; margin-right: 10px; }