.rheem-form { max-width: 920px; margin: 1.25rem auto; padding: 1.25rem; background: #fff; border: 1px solid #e5e7eb; border-radius: 14px; box-sizing: border-box; width: 100%; overflow: hidden; }
.rheem-title { margin: 0 0 1rem 0; font-weight: 600; color: #111827; }
.rheem-form fieldset { border: 1px dashed #e5e7eb; border-radius: 12px; padding: 1rem; margin-bottom: 1rem; box-sizing: border-box; width: 100%; }
.rheem-form legend { padding: 0 .5rem; font-weight: 600; color: #374151; }
.rheem-form label { display: flex; flex-direction: column; gap: .35rem; font-size: .95rem; color: #374151; margin-bottom: .8rem; width: 100%; box-sizing: border-box; }
.rheem-form input, .rheem-form select { padding: .6rem .8rem; border: 1px solid #d1d5db; border-radius: 10px; font-size: .96rem; width: 100%; max-width: 100%; box-sizing: border-box; }
.rheem-form select { word-wrap: break-word; white-space: normal; }
.rheem-actions { display: flex; gap: .6rem; justify-content: flex-end; margin-top: .25rem; }
.rheem-btn { padding: .6rem 1rem; border-radius: 10px; border: 1px solid #d1d5db; background: #f9fafb; cursor: pointer; color: #374151; box-sizing: border-box; }
.rheem-btn:hover { background: #f3f4f6; border-color: #9ca3af; }
.rheem-btn-primary { background: #e4002b; color: #fff; border-color: #e4002b; }
.rheem-btn-primary:hover { background: #d0021b; border-color: #d0021b; }

@media (max-width: 768px) {
  .rheem-form { margin: 0.5rem; padding: 1rem; border-radius: 8px; width: calc(100% - 1rem) !important; max-width: calc(100% - 1rem) !important; }
  .rheem-form fieldset { padding: 0.75rem; margin-bottom: 0.75rem; width: 100% !important; max-width: 100% !important; overflow: hidden; }
  .rheem-form label { width: 100% !important; max-width: 100% !important; margin-bottom: 0.8rem; }
  .rheem-form input, .rheem-form select { padding: 0.75rem 0.6rem; font-size: 16px !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
  .rheem-form select { word-wrap: break-word; white-space: normal; overflow-wrap: break-word; }
  .rheem-form select option { padding: 0.5rem; word-wrap: break-word; white-space: normal; }
  .rheem-actions { flex-direction: column !important; gap: 0.5rem; width: 100% !important; }
  .rheem-btn { padding: 0.75rem 1rem; width: 100% !important; }
  
  .rheem-fieldset-datos-compra, .rheem-fieldset-contacto, .rheem-fieldset-domicilio-fiscal, .rheem-fieldset-datos-fiscales { width: 100% !important; max-width: 100% !important; padding: 0.75rem; margin-bottom: 0.75rem; overflow: hidden; }
}

@media (max-width: 480px) {
  .rheem-form { margin: 0.25rem; padding: 0.75rem; width: calc(100% - 0.5rem) !important; max-width: calc(100% - 0.5rem) !important; }
  .rheem-form fieldset { padding: 0.5rem; margin-bottom: 0.5rem; }
  .rheem-form input, .rheem-form select { padding: 0.6rem 0.5rem; font-size: 16px !important; }
  
  .rheem-fieldset-datos-compra, .rheem-fieldset-contacto, .rheem-fieldset-domicilio-fiscal, .rheem-fieldset-datos-fiscales { padding: 0.5rem; margin-bottom: 0.5rem; width: 100% !important; max-width: 100% !important; overflow: hidden; }
}

.rheem-fieldset-datos-compra { width: 100%; max-width: 100%; box-sizing: border-box; }
.rheem-fieldset-contacto { width: 100%; max-width: 100%; box-sizing: border-box; }
.rheem-fieldset-domicilio-fiscal { width: 100%; max-width: 100%; box-sizing: border-box; overflow: hidden; }
.rheem-fieldset-datos-fiscales { width: 100%; max-width: 100%; box-sizing: border-box; overflow: hidden; }

.elementor-widget-shortcode .rheem-form, .elementor-shortcode .rheem-form { width: 100% !important; max-width: 100% !important; margin: 0; }
.elementor-widget-shortcode .rheem-form fieldset, .elementor-shortcode .rheem-form fieldset { width: 100% !important; max-width: 100% !important; overflow: hidden; }
.elementor-widget-shortcode .rheem-form input, .elementor-widget-shortcode .rheem-form select, .elementor-shortcode .rheem-form input, .elementor-shortcode .rheem-form select { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }

.elementor-widget-shortcode .rheem-fieldset-datos-compra, .elementor-widget-shortcode .rheem-fieldset-contacto, .elementor-widget-shortcode .rheem-fieldset-domicilio-fiscal, .elementor-widget-shortcode .rheem-fieldset-datos-fiscales, .elementor-widget-shortcode .rheem-fieldset-datos-compra, .elementor-widget-shortcode .rheem-fieldset-contacto, .elementor-widget-shortcode .rheem-fieldset-domicilio-fiscal, .elementor-widget-shortcode .rheem-fieldset-datos-fiscales { width: 100% !important; max-width: 100% !important; overflow: hidden; }

.rheem-message-area {
  margin-bottom: 1rem;
  padding: 0.75rem;
  border-radius: 8px;
  border: 1px solid;
  font-size: 0.95rem;
  line-height: 1.4;
}

.rheem-message-area .success {
  background-color: #d1fae5;
  border-color: #10b981;
  color: #065f46;
}

.rheem-message-area .error {
  background-color: #fee2e2;
  border-color: #ef4444;
  color: #991b1b;
}

.rheem-message-area .warning {
  background-color: #fef3c7;
  border-color: #f59e0b;
  color: #92400e;
}

.rheem-message-area .info {
  background-color: #dbeafe;
  border-color: #3b82f6;
  color: #1e40af;
}

.rheem-notification {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
  max-width: 400px;
  padding: 16px 20px;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  font-size: 14px;
  line-height: 1.4;
  transform: translateX(100%);
  transition: transform 0.3s ease-in-out;
  display: flex;
  align-items: center;
  gap: 12px;
}

.rheem-notification.show {
  transform: translateX(0);
}

.rheem-notification.success {
  background-color: #10b981;
  color: white;
  border-left: 4px solid #059669;
}

.rheem-notification.error {
  background-color: #ef4444;
  color: white;
  border-left: 4px solid #dc2626;
}

.rheem-notification.warning {
  background-color: #f59e0b;
  color: white;
  border-left: 4px solid #d97706;
}

.rheem-notification.info {
  background-color: #3b82f6;
  color: white;
  border-left: 4px solid #2563eb;
}

.rheem-notification-icon {
  font-size: 20px;
  flex-shrink: 0;
}

.rheem-notification-close {
  background: none;
  border: none;
  color: inherit;
  font-size: 18px;
  cursor: pointer;
  padding: 0;
  margin-left: auto;
  opacity: 0.8;
  transition: opacity 0.2s;
}

.rheem-notification-close:hover {
  opacity: 1;
}

@media (max-width: 768px) {
  .rheem-notification {
    top: 10px;
    right: 10px;
    left: 10px;
    max-width: none;
    transform: translateY(-100%);
  }
  
  .rheem-notification.show {
    transform: translateY(0);
  }
}